import axios from "axios";
//根据时间获取问候语
export function greetBasedOnTime() {
  const date = new Date();
  const hours = date.getHours();

  if (hours >= 0 && hours < 12) {
    return "早上好";
  } else if (hours >= 12 && hours < 14) {
    return "中午好";
  } else if (hours >= 14 && hours < 18) {
    return "下午好";
  } else if (hours >= 18 && hours < 24) {
    return "晚上好";
  } else {
    // 这通常不会发生，因为getHours()返回的是0到23之间的整数
    return "时间错误";
  }
}
//格式化时间格式
export function formatDate(isoString) {
  const date = new Date(isoString);

  // 检查日期是否有效
  if (isNaN(date.getTime())) {
    return "无效的日期";
  }

  // 获取年、月、日
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, "0"); // getMonth() 是从0开始的，所以需要+1
  const day = String(date.getDate()).padStart(2, "0");

  // 拼接并返回结果
  return `${year}年${month}月${day}日`;
}
//excel转数组
import { read, utils } from "xlsx";

export const parseExcelFile = (file) => {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.onload = (e) => {
      try {
        const data = new Uint8Array(e.target.result);
        const workbook = read(data, { type: "array" });

        // 假设我们处理第一个工作表
        const worksheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[worksheetName];

        // 将工作表转换为JSON对象数组
        const jsonData = utils.sheet_to_json(worksheet, {
          header: 1,
          defval: "",
          raw: false,
        });

        // 解析成功，返回数据（JSON对象数组）
        resolve(jsonData);
      } catch (error) {
        // 解析失败，拒绝Promise并返回错误
        reject(error);
      }
    };

    reader.onerror = (error) => {
      // 读取文件时发生错误
      reject(error);
    };

    // 读取文件为ArrayBuffer
    reader.readAsArrayBuffer(file);
  });
};
//下载函数
export function downloadFileWithAxios(filePath, fileName) {  
  axios({  
    method: 'get',  
    url: filePath,  
    responseType: 'blob', // 告诉axios期望服务器返回的数据类型  
  })  
  .then((response) => {  
    // 创建一个Blob对象  
    const blob = new Blob([response.data], { type: response.headers['content-type'] });  
    // 创建一个指向blob对象的URL  
    const url = window.URL.createObjectURL(blob);  
    // 创建一个a标签用于下载  
    const link = document.createElement('a');  
    console.log(url); //这里的url是blob:http://localhost:5173/36d3de3b-e0b4-4d0c-bda5-bba68c295bac,为什么不是filePath呢？
    link.href = url;  
    link.setAttribute('download', fileName); // 设置下载的文件名  
    document.body.appendChild(link);  
    link.click(); // 模拟点击下载  
    // 释放URL对象  
    window.URL.revokeObjectURL(url);  
    // 清理a标签  
    document.body.removeChild(link);  
  })  
  .catch((error) => {  
    console.error('Error downloading file:', error);  
  });  
}  
//判断是否超时
export function isSubmissionTimeExceeded(submissionTimeString) {  
  // 解析提交时间字符串为Date对象  
  const submissionTime = new Date(submissionTimeString);  

  // 确保提交时间字符串是有效的  
  if (isNaN(submissionTime.getTime())) {  
      throw new Error('Invalid submission time string');  
  }  

  // 获取当前时间  
  const currentTime = new Date();  

  // 计算两天的时间差（以毫秒为单位）  
  const twoDaysInMilliseconds = 2 * 24 * 60 * 60 * 1000;  

  // 检查当前时间是否超过提交时间两天  
  if (currentTime.getTime() > submissionTime.getTime() + twoDaysInMilliseconds) {  
      return true; // 超过了提交时间  
  } else {  
      return false; // 可以提交  
  }  
} 
export function formatDateTime(dateTimeString) {  
  // 解析时间字符串为Date对象  
  const dateTime = new Date(dateTimeString);  

  // 确保时间字符串是有效的  
  if (isNaN(dateTime.getTime())) {  
      throw new Error('Invalid date time string');  
  }  

  // 使用padStart方法来确保两位数  
  const year = dateTime.getFullYear();  
  const month = String(dateTime.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的，所以需要+1  
  const day = String(dateTime.getDate()).padStart(2, '0');  
  const hours = String(dateTime.getHours()).padStart(2, '0');  
  const minutes = String(dateTime.getMinutes()).padStart(2, '0');  
  const seconds = String(dateTime.getSeconds()).padStart(2, '0');  

  // 格式化输出年月日时分秒  
  return `${year}年${month}月${day}日 ${hours}时:${minutes}分:${seconds}秒`;  
} 
